#include "junix.h"
using namespace std;

class B
{
	public:
		B(int ii):i(ii) { }

		void f()
		{
			cout<<i<<endl;
		}

		void hello()
		{
			cout<<"hello"<<endl;
		}

		virtual void k()
		{
			cout<<"B::k()"<<endl;
		}

		int n;
	private:
		int i;
};

class D:public B
{
	public:
		D(int ii):B(ii){ }
		void f()
		{
			i = 10000000;
			B::f();
		}

		void hello(int i)
		{
			cout<<"hello "<<i<<endl;
		}

		using B::hello;

	private:
		void k()
		{
			cout<<"D::k()"<<endl;
		}

	//	using B::n;

	private:
		int n;
		int i;
};

int main(int argc, char **argv)
{
	D d(999);
	d.f();
	d.B::n=99;

	cout<<endl;
	d.hello();
	d.hello(999);
	d.B::hello();

	cout<<endl;
//	d.k();
	d.B::k();
//	d.D::k();

}
